#include <stdio.h>
#include <string.h>

// 拼接字符串：strcat(char *dest, const char *src)
char *my_strcat(char *dest, const char *src)
{
    char *result = dest;
    while(*dest++) // 先找到的最后一位，这时包含\0
        ;
    printf("dest = %s \n", dest);
    dest-- ; // 前移一位，从\0开始拼接
    printf("dest = %s \n", dest);
    while (*src)
    {
        if (!(*dest++ = *src++))
        {
            return result;
        }
    }
    *dest = '\0';
    return result;
}
// 源字符串必须以'\0'结束// strcat
int main() 
{
    char p1[] = "hello \0xxxxxxxxxxxxxxxxxxxx";
    char p2[] = "world";
    strncat(p1, p2, 8);     // 会覆盖\0 ,并将src的\0拷贝到dest中
    printf("p1 = %s \n", p1);
    printf("p2 = %s \n", p2);

    char p3[] = "hello \0xxxxxxxxxxxxxxxxxxxx";
    char p4[] = "world";
    my_strcat(p3, p4); // 会覆盖\0 ,并将src的\0拷贝到dest中
    printf("p3 = %s \n", p3);
    printf("p4 = %s \n", p4);
    return 0; // 返回 0
}

